﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="pgEquivalencias.aspx.cs"
    Inherits="Utpl.Syllabus.Reconocimiento.Web.PgEquivalencias" %>

<%@ Register Src="windowEditor.ascx" TagName="wucEditor" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Administración de Equivalencias</title>
    <style type="text/css">
        .template
        {
            color: #fff;
            background-color: gray;
        }
        
        .white-footer .x-panel-footer
        {
            background-color: white !important;
        }
        /*
        *Css para cbo con grid
        */
        .cbStates-list
        {
            width: 298px;
            font: 11px tahoma,arial,helvetica,sans-serif;
        }
        
        .cbStates-list th
        {
            font-weight: bold;
        }
        
        .cbStates-list td, .cbStates-list th
        {
            padding: 3px;
        }
    </style>
</head>
<body>
    <ext:ResourceManager ID="ResourceManager1" runat="server" DirectMethodNamespace="Equivalencias">
    </ext:ResourceManager>
    <ext:Store ID="stoTmp" runat="server">
        <Reader>
            <ext:JsonReader IDProperty="Id">
                <Fields>
                    <ext:RecordField Name="Nombre" />
                    <ext:RecordField Name="Id" />
                </Fields>
            </ext:JsonReader>
        </Reader>
    </ext:Store>
    <ext:Store ID="stoPeriodoAcademico" runat="server">
        <Reader>
            <ext:JsonReader IDProperty="Id">
                <Fields>
                    <ext:RecordField Name="Nombre" />
                    <ext:RecordField Name="Id" />
                </Fields>
            </ext:JsonReader>
        </Reader>
    </ext:Store>
    <ext:Store ID="stoProgramaAcademico" runat="server">
        <Reader>
            <ext:JsonReader IDProperty="Id">
                <Fields>
                    <ext:RecordField Name="Id" />
                    <ext:RecordField Name="Nombre" />
                    <ext:RecordField Name="Tipo" />
                </Fields>
            </ext:JsonReader>
        </Reader>
    </ext:Store>
    <ext:Store ID="StoreEstado" runat="server">
        <Reader>
            <ext:ArrayReader>
                <Fields>
                    <ext:RecordField Name="value" />
                    <ext:RecordField Name="name" />
                </Fields>
            </ext:ArrayReader>
        </Reader>
    </ext:Store>
    <ext:Store ID="Store3" runat="server" SkipIdForNewRecords="false" RemoteSort="false">
        <Reader>
            <ext:ArrayReader IDProperty="Nombre">
                <Fields>
                    <ext:RecordField Name="Nombre" />
                    <ext:RecordField Name="Codigo" />
                    <ext:RecordField Name="Grupo" />
                    <ext:RecordField Name="Nivel" Type="Int" />
                    <ext:RecordField Name="lastGrupo" Type="Date" DateFormat="yyyy-MM-ddTHH:mm:ss" />
                </Fields>
            </ext:ArrayReader>
        </Reader>
    </ext:Store>
    <ext:Store ID="storeTabla" runat="server">
        <Reader>
            <ext:JsonReader IDProperty="Id">
                <Fields>
                    <ext:RecordField Name="Id" />
                    <ext:RecordField Name="Nombre" />
                </Fields>
            </ext:JsonReader>
        </Reader>
    </ext:Store>
    <ext:Store runat="server" ID="stoEquivalencias" RemotePaging="false" AutoLoad="false" ShowWarningOnFailure="false" OnRefreshData="stoEquivalencias_StoreRefresh"> 
        <Reader>
            <ext:JsonReader IDProperty="Id"  >
                <Fields>
                    <ext:RecordField Name="Id" />
                    <ext:RecordField Name="ComponenteId" />
                    <ext:RecordField Name="CodigoComponente" />
                    <ext:RecordField Name="NombreComponente" />
                    <ext:RecordField Name="ComponentesOrigen" IsComplex="true" />
                    <ext:RecordField Name="PlanEstudioOrigenId" />
                    <ext:RecordField Name="VariacionProgramaAcademicoId" />
                    <ext:RecordField Name="GrupoCreditoId" />
                    <ext:RecordField Name="NumeroCreditos" />
                    <ext:RecordField Name="Estado" />
                    <ext:RecordField Name="Observacion" />
                    <ext:RecordField Name="GrupoCredito" />
                    <ext:RecordField Name="CodigoVariacion" />
                    <ext:RecordField Name="NombreVariacion" />
                    <ext:RecordField Name="CodigoPlanEstudio" />
                    <ext:RecordField Name="NombrePlanEstudio" />
                </Fields>
            </ext:JsonReader>
        </Reader>
        <%--<AutoLoadParams>
            <ext:Parameter Name="start" Value="={0}" />
        </AutoLoadParams>--%>
        <Proxy>
             <ext:PageProxy></ext:PageProxy>
         <%--  <ext:HttpProxy Url="~/Equivalencia/BusquedaAdministracion">
	                        </ext:HttpProxy>--%>
        </Proxy>
        <BaseParams>
            <ext:Parameter Name="Nombre" Value="#{txtNombre}.getValue()" Mode="Raw" />
            <ext:Parameter Name="Codigo" Value="#{txtCodigo}.getValue()" Mode="Raw" />
            <ext:Parameter Name="Estado" Value="#{cbxEstado}.getValue()" Mode="Raw" />
            <ext:Parameter Name="VariacionId" Value="#{cbbProgramaVariacionB}.getValue()" Mode="Raw" />
        </BaseParams>
        <Listeners>
            <Load Handler="Syllabus.Js.Data.Store.validarDatosVacia(store,pgEquivalencias.presentaMensaje);" />
            <Exception Fn="Syllabus.Js.HandlerExcepcion" />
        </Listeners>
        <DirectEventConfig>
            <EventMask ShowMask="true" />
        </DirectEventConfig>
    </ext:Store>
    <ext:Hidden runat="server" ID="hidIdEquivalencia">
    </ext:Hidden>
    <ext:Viewport ID="vwpContainer" runat="server" Layout="Fit">
        <LayoutConfig>
            <ext:VBoxLayoutConfig Align="Stretch" />
        </LayoutConfig>
        <Items>
            <%--Controles de buscador--%>
            <ext:Panel ID="pnlGlobal" Border="false" Cls="x-panel-search" runat="server" AutoHeight="true"
                ButtonAlign="Center">
                <Items>
                    <ext:FormPanel ID="frpBusqueda" runat="server" Cls="x-panel-search-content" BodyStyle="background-color: Transparent;"
                        Border="false" Layout="Column" AutoHeight="true">
                        <Items>
                            <ext:Panel ID="Panel3" runat="server" ColumnWidth=".5" Layout="Form" Border="false"
                                Header="false" Height="70">
                                <Items>
                                    <ext:TextField FieldLabel="Nombre Componente" ID="txtNombre" runat="server" AnchorHorizontal="95%" />
                                    <ext:ComboBox ID="cbbProgramaVariacionB" FieldLabel="Variación" runat="server" EmptyText="Seleccione Item"
                                    TypeAhead="true" ForceSelection="true" AllowBlank="False" Mode="Local" DisplayField="VariacionNombre"
                                    ValueField="Id" MinChars="1" ListWidth="400" PageSize="10" ItemSelector="tr.list-item"
                                    AnchorHorizontal="95%">
                                    <Store>
                                        <ext:Store ID="stoProgramaVariacionB" runat="server">
                                            <Reader>
                                                <ext:JsonReader IDProperty="Id">
                                                    <Fields>
                                                        <ext:RecordField Name="Id" />
                                                        <ext:RecordField Name="VariacionNombre" />
                                                        <ext:RecordField Name="ProgramaAcademicoId" />
                                                        <ext:RecordField Name="ProgramaAcademicoNombre" />
                                                        <ext:RecordField Name="ProgramaAcademicoCodigo" />
                                                        <ext:RecordField Name="ModalidadId" />
                                                        <ext:RecordField Name="ModalidadNombre" />
                                                        <ext:RecordField Name="NivelAcademicoId" />
                                                        <ext:RecordField Name="NivelAcademicoNombre" />
                                                        <ext:RecordField Name="FormaAprobacionId" />
                                                    </Fields>
                                                </ext:JsonReader>
                                            </Reader>
                                        </ext:Store>
                                    </Store>
                                    <Template ID="Template3" runat="server">
                                        <Html>
                                            <tpl for=".">
						                        <tpl if="[xindex] == 1">
							                        <table class="cbStates-list">
								                        <tr>
									                        <th>Nombre Variación</th>
									                        <th>Código</th>
                                                            <th>Nivel Académico</th>
                                                            <th>Modalidad</th>
								                        </tr>
						                        </tpl>
						                        <tr class="list-item">
						                            <td>{VariacionNombre}</td>
							                        <td>{ProgramaAcademicoCodigo}</td>
                                                    <td>{NivelAcademicoNombre}</td>
                                                    <td>{ModalidadNombre}</td>
						                        </tr>
						                        <tpl if="[xcount-xindex]==0">
							                        </table>
						                        </tpl>
					                        </tpl>
                                        </Html>
                                    </Template>
                                    <Triggers>
                                        <ext:FieldTrigger Icon="Clear" HideTrigger="true" />
                                    </Triggers>
                                    <Listeners>
                                        <Select Handler="this.triggers[0].show();" />
                                        <BeforeQuery Handler="this.triggers[0][ this.getRawValue().toString().length == 0 ? 'hide' : 'show']();" />
                                        <TriggerClick Handler="if(index == 0) { this.clearValue(); this.triggers[0].hide(); };" />
                                    </Listeners>
                                </ext:ComboBox>
                                </Items>
                            </ext:Panel>
                            <ext:Panel ID="Panel4" runat="server" ColumnWidth=".5" Layout="Form" Border="false">
                                <Items>
                                    <ext:TextField FieldLabel="Código Componente" ID="txtCodigo" runat="server" AnchorHorizontal="95%" />
                       
                                    <ext:ComboBox ID="cbxEstado" AnchorHorizontal="95%" FieldLabel="Estado" runat="server"
                                        Width="250" Editable="false" DisplayField="text" ValueField="value" EmptyText="Seleccione Estado">
                                        <Items>
                                            <ext:ListItem Text="Activo" Value="1" />
                                            <ext:ListItem Text="Inactivo" Value="-1" />
                                        </Items>
                                        <Triggers>
                                            <ext:FieldTrigger Icon="Clear" HideTrigger="true" />
                                        </Triggers>
                                        <Listeners>
                                            <Select Handler="this.triggers[0].show();" />
                                            <BeforeQuery Handler="this.triggers[0][ this.getRawValue().toString().length == 0 ? 'hide' : 'show']();" />
                                            <TriggerClick Handler="if (index == 0) { this.clearValue(); this.triggers[0].hide();ParteHorario.LimpiarValidaciones(); }" />
                                        </Listeners>
                                    </ext:ComboBox>         </Items>
                            </ext:Panel>
                        </Items>
                    </ext:FormPanel>
                </Items>
                <Buttons>
                    <ext:Button runat="server" ID="btnBuscar" Text="Buscar">
                        <Listeners>
                            <Click Handler="pgEquivalencias.Buscar();"></Click>
                        </Listeners>
                    </ext:Button>
                </Buttons>
            </ext:Panel>
            <ext:GridPanel ID="gpEquivalencias" runat="server" StoreID="stoEquivalencias" AutoExpandColumn="NombreComponente"
                StripeRows="true" TrackMouseOver="true" Flex="1" Title="Listado de Equivalencias">
                <TopBar>
                    <ext:Toolbar ID="Toolbar1" runat="server">
                        <Items>
                            <ext:ToolbarFill ID="ToolbarFill1" runat="server" />
                            <ext:Button runat="server" ID="btnNuevo" Text="Nuevo" Icon="PageAdd">
                                <DirectEvents>
                                    <Click OnEvent="RunAction">
                                        <ExtraParams>
                                            <ext:Parameter Name="IdParam" Value="0" />
                                            <ext:Parameter Name="operacionParam" Value="Nuevo" />
                                        </ExtraParams>
                                        <EventMask ShowMask="True"></EventMask>
                                    </Click>
                                </DirectEvents>
                            </ext:Button>
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:CommandColumn Width="55">
                            <Commands>
                                <ext:GridCommand CommandName="Editar" Icon="ApplicationEdit" ToolTip-Text="Editar datos de la equivalencia" />
                                <ext:GridCommand CommandName="Eliminar" Icon="PageDelete" ToolTip-Text="Eliminar equivalencia" />
                            </Commands>
                        </ext:CommandColumn>
                        <ext:Column Header="Componente" DataIndex="NombreComponente" Width="180">
                            <Renderer Fn="Sy.Render.textoWrap" />
                        </ext:Column>
                        <ext:Column Header="Código" DataIndex="CodigoComponente" Width="110">
                            <Renderer Fn="Sy.Render.textoWrap" />
                        </ext:Column>
                        <ext:Column Header="Grupo Crédito" DataIndex="GrupoCredito" Width="90">
                            <Renderer Fn="Sy.Render.textoWrap" />
                        </ext:Column>
                        <ext:Column Header="Créditos" DataIndex="NumeroCreditos" Width="60" />
                        <ext:Column Header="Variación" ColumnID="NombreComponente" DataIndex="NombreVariacion">
                            <Renderer Fn="Sy.Render.textoWrap" />
                        </ext:Column>
                        <ext:Column Header="Componentes Origen" DataIndex="ComponentesOrigen" Width="380">
                            <Renderer Fn="pgEquivalencias.RenderComponentesOrigen" />
                        </ext:Column>
                        <ext:Column Header="Observación" DataIndex="Observacion" Width="120">
                            <Renderer Fn="Sy.Render.textoWrap" />
                        </ext:Column>
                        <ext:Column Header="Estado" DataIndex="Estado" Width="60">
                            <Renderer Handler="if (value == '1') return 'Activo'; else return 'Inactivo';" />
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <DirectEvents>
                    <Command OnEvent="gpEquivalencias_Command">
                        <ExtraParams>
                            <ext:Parameter Name="Operacion" Value="command" Mode="Raw" Encode="False" />
                            <ext:Parameter Name="Id" Value="record.data.Id" Mode="Raw" />
                        </ExtraParams>
                        <EventMask ShowMask="True"></EventMask>
                    </Command>
                </DirectEvents>
                <SelectionModel>
                    <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
                    </ext:RowSelectionModel>
                </SelectionModel>
                <BottomBar>
                   <%--  <ext:PagingToolbar ID="ptbBuscarEquivalencias" runat="server" StoreID="stoEquivalencias"
                        DisplayInfo="true" EmptyMsg="<%$ Res: Textos.EmptyMsg %>" />--%>
                       <ext:PagingToolbar ID="ptbBuscarEquivalencias" runat="server" PageSize="20"  />
                </BottomBar>
            </ext:GridPanel>
        </Items>
    </ext:Viewport>
    <uc1:wucEditor runat="server" ID="wucEditor1" />
</body>
<ext:XScript ID="XScript1" runat="server">
    <script language="javascript" type="text/javascript">
        var pgEquivalencias = new Object();
        
        pgEquivalencias.presentaMensaje=true;
        pgEquivalencias.Buscar = function() {
            #{stoEquivalencias}.load();//{ params: { start: 0, limit: #{ptbBuscarEquivalencias}.pageSize} });
        };
        pgEquivalencias.RenderComponentesOrigen = function(value) {
            if (value.length > 0) {
                #{storeTabla}.removeAll();
                for (var i = 0; i < value.length; i++) {
                    var info = value[i];                
                    #{storeTabla}.insertRecord(0, {
                        'Nombre': info.Nombre,
                        'Codigo': info.Codigo,
                        'PlanEstudio' : info.PlanEstudio
                    });
                }
                var datosTabla = Sy.Util.StoreToTable({
                    width: '90%',
                    store: #{storeTabla},
                    withHeaders: true,
                    cols: [{
                    header: 'Nombre',
                    field: 'Nombre' 
                }, 
                    {
                    header: 'Codigo',
                    field: 'Codigo',
                    width: '22%'                   
                }, 
                    {
                    header: 'Programa Origen',
                    field: 'PlanEstudio',
                    width: '38%'                   
                } ]
                });
                return datosTabla.getHTML();
            }
        };
       
    </script>
</ext:XScript>
</html>
